With the increasing importance of electronic data in both the personal and commercial setting, data redundancy is essential. Computer systems may include both local and remote storage devices connected to the computer systems through one or more communication connections (e.g., local area networks, wide area networks, and the like). The connections between systems may be over various mediums, such as coaxial cable, category five ethernet, gigabit ethernet, firewire, fiber cable, and other data connections. The storage devices can be single discs, flash drives, tape drives, redundant arrays of independent discs (RAIDs), data servers, and other mass storage devices. Typically, the system interface to these storage devices is a host processor. A host processor may perform a variety of data processing tasks and operations using the data storage system. For example, a host processor may perform system input and output (I/O) operations in connection with data requests (e.g., data read and write operations), as well as administrative tasks (e.g., data backup and disc mirroring operations).
Regardless of in-home or office use, the data storage software and devices should be non-disruptive to applications and hosts. For example, it is desirable to have limited application down time when making changes to the mechanism used for storage. Many data storage products offer redundancy to prevent application outages during software upgrades and modifications. To facilitate remote access to the data storage devices, servers or hosts can access the data storage devices over a storage data path. However, the risk of application disruption is not solved by redundancy if a portion of a product needs to be taken offline during an upgrade or modification. Taking that portion of the product offline requires that all servers or hosts attached to that data path, change their data path information, either by fail over or by using a new data path, automatically.
Alternately, the host and remote storage devices can use multi-pathing software. For example, when a path to a storage device fails, the system can reroute the I/O operations destined for a particular storage device to the storage system through an available redundant path. This can be extended to allow for merging and upgrading systems when the host-path to the initial computer is switched to the path of an alternate server. While host-pathing software can typically handle the transition from one data path to the other without causing application failure, the burden of application availability falls on the host software rather than the storage product because the host manages the pathing routes. For example, the host multipathing software would fail over I/O from one port to another port. Taking a portion of a storage product offline also decreases the number of functional paths from a host during the course of the upgrade, which can impact performance.
An example, of impact to performance is a decrease in functional paths. This introduces a vulnerability window where high availability may be compromised with only one functional host path instead of two. Further, there is typically a noticeable decrease in performance from the loss of a functional path. Additionally, susceptibility to host-pathing software errors in handling the path transition correctly can result in application failures and, often, costly downtime.